
function a(){
    console.log( 'before' );

    // 通过构造函数创建 Promise实例
    let p = new Promise( (resolve,reject) => {
        setTimeout( resolve , 500 );
    });
    console.log( 'promise: ' , p );

    // 调用 Promise实例的 then 函数返回新的 Promise实例
    // 注意 函数 b 或 c 的调用属于 异步调用:
    // 当 p 为 已兑现状态时才调用 b ，当 p 为 已拒绝状态时才调用 c
    let pp = p.then( b , c );
    console.log( 'promise: ' , pp );

    console.log( 'after' );
}

function b(){
   console.log( 'I am b');
}

function c(){
    console.log( 'I am b');
 }

// 调用 a 函数
a();